/**
 * Kompilacja:
 *  $ mpicc mpitest.c -o mpitest
 * Uruchomienie
 *  $ mpirun -np 4 ./mpitest
 * */

#include <stdio.h>
#include <stdlib.h>
#include "mpi.h"

#define ROZM 10


main(int argc, char **argv)
{
	int np, rank;
	MPI_Status status;
	
	MPI_Init(&argc, &argv);
	MPI_Comm_rank(MPI_COMM_WORLD, &rank);
	MPI_Comm_size(MPI_COMM_WORLD, &np);
	
	unsigned int iseed = (unsigned int)time(NULL);
	long int *liczba;
	liczba = (long int *)malloc(sizeof(*liczba)*ROZM);
	
	  srand (rank + iseed);
	  int i;
	  if(rank == 0) {
		  for(i=0; i<10; i++) {
		  		
		  		liczba[i] = rand()/10000;
		  	}
		  
	  }
	  
	int wynik[2] = {0,0};
	printf("Proces %d, indeks wyniku %d, wynik %d, liczba %ld \n", rank, wynik[0], wynik[1], liczba[0]);
	MPI_Bcast(liczba, ROZM, MPI_INT, 0, MPI_COMM_WORLD);
	//MPI_Reduce(liczba, wynik, ROZM, MPI_INT,MPI_SUM, 0, MPI_COMM_WORLD);
	printf("Proces %d, indeks wyniku %d, wynik %d \n", rank, wynik[0], wynik[1]);

	
	//printf("Witaj, jestem \e[31m%d\e[0m z pośród \e[35m%d\e[0m procesów.\n", rank, np);
	
	MPI_Finalize();
}
